package com.example.mybatis_demo.mapper;

import com.example.mybatis_demo.model.ArticleInfo;
import com.example.mybatis_demo.model.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: fzykd
 * Date: 2022-12-19
 * Time: 13:22
 */

@Mapper //映射关系
public interface UserMapper {
    //在mapper当中写CRUD的方法 然后在对应的xml中写sql语句
    //然后service调用 mapper  controller调用service

    //根据id查询用户信息
    User getUserById(Integer id);

    //根据id修改姓名
    int updateById(Integer id, String name);

    //添加一个实例对象 返回的也是收影响的行数
    int add(User user);

    //添加一个实例对象 设置自增主键
    int add1(User user);

    //根据id删除数据 返回受影响的行数
    int del(Integer id);

    //特殊查询
    //#{} 和 ${} 的区别 $是直接替换就无法处理字符类型的参数(并且存在SQL注入的问题 但是在排序的时候用到$)
    // #是预处理 也更安全

    //根据id来进行排序 返回受影响的行数 排序返回的是多个数据 多个数据用list集合接收
    List<User> getIdOrder(String order);

    //like查询
    List<User> getLike(String username);

    //resultType VS resultMap  此处处理表的字段名和对象属性名不一致的情况
    //普通的根据id查询信息

    User getIdMap(Integer id);


    //动态SQL 传photo的值 有就传 没有就不传 逻辑在SQL中体现
    //添加一条数据 对photo传值进行处理
    int add2(User user);


}
